package main

import (
	"fmt"
	"os"
)

/*
学生信息管理系统	id、name、age、address(id不能重复)
1、添加学生信息
2、修改学生信息
3、删除学生信息
4、查看当前所有学生信息
5、退出
*/

//首字母大小，在调用包的时候，可以使用
type StuInfo struct {
	Id int
	Name string
	Age int16
	Address string
}
var StuMap = make(map[int]StuInfo)

func main(){
	for {
		fmt.Println("1、添加学生信息\n2、修改学生信息\n3、删除学生信息\n4、查看当前所有学生信息\n5、退出程序\n")
		var choice int8
		fmt.Print("请输入你的选择:")
		fmt.Scan(&choice)
		switch choice {
		case 1:
			fmt.Println("请输入学生信息")
			var id int
			var age int16
			var name, address string
			fmt.Print("请输入学生id:")
			fmt.Scan(&id)
			_, ok := StuMap[id]
			if ok {
				fmt.Println("此学生id已存在")
				continue
			}
			fmt.Print("请输入学生姓名:")
			fmt.Scan(&name)
			fmt.Print("请输入学生年龄:")
			fmt.Scan(&age)
			fmt.Print("请输入学生地址:")
			fmt.Scan(&address)
			stu := StuInfo{id,name,age,address}
			StuMap[id] = stu
		case 4:
			if len(StuMap) == 0 {
				fmt.Println("无法查询学生信息，学生信息为空")
			}else{
				fmt.Println("学生id		学生姓名		学生年龄		学生地址")
				for k,v := range StuMap {
					fmt.Printf("%-10d",k)
					fmt.Printf("%-10s",v.Name)
					fmt.Printf("%-10d",v.Age)
					fmt.Printf("%-10s\n",v.Address)
				}
			}
		case 5:
			fmt.Println("退出程序")
			os.Exit(0)
		}
	}
}
